package cobaia;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;

public class Documento {

    private String texto = "";
    private IDicionario dicionario;
    
    public Documento() {
        //o dicionário de português é o padrão
        dicionario = new Dicionario();
    }
    
    public void setDicionario(IDicionario dicionario) {
        this.dicionario = dicionario;
    }

    public void adicionarTexto(String texto) {
        this.texto += texto;
    }

    public void adicionarTítulo(String título) {
        this.texto += título + "\n\n";
    }

    public void adicionarParágrafo(String parágrafo) {
        this.texto += parágrafo + "\n";
    }

    public int getCaracteres() {
        return texto.length();
    }

    public int getCaracteresImprimíveis() {
        return texto.replaceAll(" ", "").replaceAll("\n", "").length();
    }

    public int getParagrafos() {
        return texto.split("\n").length;
    }

    public int errosOrtografia() throws Exception{
        return getPalavrasIncorretas().size();
    }

    public List<String> getPalavrasIncorretas() throws Exception{
        return this.dicionario.existePalavra(getPalavras());
    }

    public List<String> getPalavras() {
        return Arrays.asList(texto.split(" "));
    }
    
    @Override
    public String toString() {
        return texto;
    }

}
